package cn.itcast.bassm.util;

import java.util.List;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class MailUtil{

	public static   String  SenMailGo(String urlxls) throws MessagingException{
		String txtPath ="/home/apache-tomcat-8.0.24/webapps/MailBox.txt";
		String QQZhangHao=ReadMailBox.readTxtLine(txtPath, 2);
		String QQMiYao=ReadMailBox.readTxtLine(txtPath, 3);
	 // 创建Properties 类用于记录邮箱的一些属性
    final Properties props = new Properties();
    // 表示SMTP发送邮件，必须进行身份验证
    props.put("mail.smtp.auth", "true");
    //此处填写SMTP服务器
    props.put("mail.smtp.host", "smtp.qq.com");
    //端口号，QQ邮箱给出了两个端口，但是另一个我一直使用不了，所以就给出这一个587
    props.put("mail.smtp.port", "587");
    // 此处填写你的账号
    props.put("mail.user", QQZhangHao);
    // 此处的密码就是前面说的16位STMP口令
    props.put("mail.password", QQMiYao);

    // 构建授权信息，用于进行SMTP进行身份验证
    Authenticator authenticator = new Authenticator() {

        protected PasswordAuthentication getPasswordAuthentication() {
            // 用户名、密码
            String userName = props.getProperty("mail.user");
            String password = props.getProperty("mail.password");
            return new PasswordAuthentication(userName, password);
        }
    };
    // 使用环境属性和授权信息，创建邮件会话
    Session mailSession = Session.getInstance(props, authenticator);
    // 创建邮件消息
    MimeMessage message = new MimeMessage(mailSession);
    // 设置发件人
    InternetAddress form;
	try {
		form = new InternetAddress(
		        props.getProperty("mail.user"));
		  message.setFrom(form);

		    // 设置收件人的邮箱
		    //InternetAddress to = new InternetAddress("715346620@qq.com");
		  String mail=ReadMailBox.readTxtLine(txtPath, 1);
		  	InternetAddress to = new InternetAddress(mail);
		    message.setRecipient(RecipientType.TO, to);

		    // 设置邮件标题
		    message.setSubject("测试邮件");
		   
		  //添加附件
		 // MiniMultipart类是一个容器类，包含MimeBodyPart类型的对象   
		      Multipart mainPart = new MimeMultipart(); 
			 // 创建一新的MimeBodyPart 
			  MimeBodyPart mdp = new MimeBodyPart();
			 //得到文件数据源
			 FileDataSource fds = new FileDataSource("/home/apache-tomcat-8.0.24/webapps/xls/"+urlxls+".xls");
			 //得到附件本身并至入BodyPart
			 mdp.setDataHandler(new DataHandler(fds));
			 //得到文件名同样至入BodyPart
			 mdp.setFileName(fds.getName());
			 mainPart.addBodyPart(mdp);
			 
		    // 设置邮件的内容体
			 message.setContent(mainPart, "text/html;charset=UTF-8");
			 //message.setContent("今天抓拍总数：", "text/html;charset=UTF-8");	
		    
		    

		    // 最后当然就是发送邮件啦
		    Transport.send(message);
		    
			
	} catch (AddressException e) {

		e.printStackTrace();
	}
	String msg = "成功";
    return msg;
	}
  
}
